package com.bite.messageQueue.mqServer.mapper;

import com.bite.messageQueue.mqServer.core.Binding;
import com.bite.messageQueue.mqServer.core.Exchange;
import com.bite.messageQueue.mqServer.core.MSGQueue;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;

@Mapper
public interface MetaMapper {
    // 创建交换机表
    void createExchangeTable();

    // 创建队列表
    void createQueueTable();

    // 创建绑定表
    void createBindingTable();

    // 插入交换机
    void insertExchange(Exchange exchange);

    // 删除交换机
    void deleteExchange(String exchangeName);

    // 查询所有交换机
    List<Exchange> selectAllExchanges();

    // 插入队列
    void insertQueue(MSGQueue msgQueue);

    // 删除队列
    void deleteQueue(String queueName);

    // 查询所有队列
    List<MSGQueue> selectAllQueues();

    // 插入绑定
    void insertBinding(Binding binding);

    // 删除绑定
    void deleteBinding(Binding binding);

    // 查询所有绑定
    List<Binding> selectAllBindings();
}
